/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import Entidades.Periodo;
import Entidades.Usuario;
import Ingresos.IPeriodo;
import ManagersUI.PeriodosInicioManager;
import Modelos.PeriodosModel;
import Modelos.UsuariosModel;
import java.sql.Time;
import javafx.event.*;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javax.swing.JOptionPane;

/**
 * FXML Controller class
 *
 * @author JEscalante
 */
public class PeriodosInicioController{

    /**
     * Initializes the controller class.
     */
    PeriodosInicioManager periodosInicioManager;
    Usuario usuario;
    @FXML private TextField txtBuscar;
    @FXML private TableView<Periodo> tblPeriodos;
    @FXML private TableColumn<Periodo, String> periodoColumna;
    @FXML private TableColumn<Periodo, Time> horaInicioColumna;
    @FXML private TableColumn<Periodo, Time> horaFinColumna;
    public void initialize() {}
  
    public void initManager(final PeriodosInicioManager periodosInicioManager, Usuario usuario) {
        this.periodosInicioManager = periodosInicioManager;
        this.usuario = usuario;
        cargarTabla();
    }
    public void cargarTabla(){    
        PeriodosModel periodoModel = new PeriodosModel(null); 
        
        tblPeriodos.setItems(periodoModel.getPersonData());
        Periodo filtro = new Periodo();
        periodoColumna.setCellValueFactory(new PropertyValueFactory<Periodo, String>("nombre"));
        horaFinColumna.setCellValueFactory(new PropertyValueFactory<Periodo, Time>("horaFin"));
        horaInicioColumna.setCellValueFactory(new PropertyValueFactory<Periodo, Time>("horaInicio"));
    }
    @FXML
    private void modificarPeriodo(ActionEvent event){
         Periodo registro = tblPeriodos.getSelectionModel().getSelectedItem();
        if(registro == null){
            periodosInicioManager.showPnlPeridoRegistro(usuario);            
        }
        else{
            periodosInicioManager.showPnlPeriodosModificar(usuario,registro);            
        }
    }
    @FXML
    private void registrarPeriodo(ActionEvent event){
       periodosInicioManager.showPnlPeridoRegistro(usuario);
    }
    @FXML
    private void BorrarPeriodo(ActionEvent event){
        Periodo registro = tblPeriodos.getSelectionModel().getSelectedItem();
        if(registro == null){
            JOptionPane.showMessageDialog( null, "Debe seleccionar un dato","Mensaje", JOptionPane.INFORMATION_MESSAGE );
            periodosInicioManager.showPnlPeridoRegistro(usuario);            
        }
        else{
            int confirmado = JOptionPane.showConfirmDialog(   null,  "Desea realmente eliminarlo" );
            if (JOptionPane.OK_OPTION == confirmado){
                registro.setAnulado(Boolean.TRUE);
                IPeriodo nuevo = new IPeriodo();
                nuevo.modificar(registro);
                periodosInicioManager.abrirPanelPeriodosInicio(usuario);
            }                        
        }      
    }
}
